In multiplexed data streams, a number of similar data streams are interleaved in time to form one continuous data stream. The Bellcore Synchronous Optical Network (SONET) is a communication standard pursuant to which similar modules of information are byte interleaved together to form the SONET data stream.
In the prior art, the multiplexed modules are traditionally demultiplexed to yield the original data streams. Each module data stream is then manipulated using state machine logic dedicated to that stream. This architecture accordingly requires N separate state machines to handle a multiplexed data stream of N modules. A sizable amount of duplicated logic is required when N is large, with only one state machine being active during any given time period.
The PM5361 SONET/SDH Tributary Unit Payload Processor (TUPP) of PMC-Sierra, Inc., Burnaby, British Columbia, Canada, partially solved this problem by using a time-sliced state machine architecture. In this architecture, the state vector for each virtual state machine is stored in a random access memory (RAM). When a byte of data of an information module arrives, the state vector for that time-slice is retrieved from the RAM, processed using combinational state machine logic, and written back into the RAM. This architecture thus requires 3 clock cycles to perform the state machine's read/process/write cycle. To solve this problem, three copies of the time-sliced state machine are provided, with the data being demultiplexed into three multiplexed data streams.
A further problem with the time-sliced state machine architecture is that a single state machine can not handle the full bandwidth of the multiplexed data stream unless a three times faster clock and RAM are available. As well, the need for multiple time-sliced state machines means that some arbitrary multiplexing patterns can not be processed. For some multiplexing patterns, two or more copies of the time-sliced state machine would "see" the same module if the number of clock cycles between the module's time-slices were not a multiple of three.
The present invention provides an improved state machine architecture for concurrent processing of time-division multiplexed data streams. The architecture is capable of handling the full bandwidth of the multiplexed data stream without demultiplexing it. A system clock rate equal to the data rate can be used. The RAM speed can be comparable to the incoming data rate. Multiplexing schemes common to SONET standards can be handled.